﻿Imports System.Xml.Serialization

Public Class FeatureInfo
    <XmlAttribute()> Public Ids As Generic.List(Of String)
    Public Title As String
    Public Year As String
    Public Poster As BinaryFile
    Public Description As String
    Public Tagline As String
    Public PlotSummary As String
    Public ReleaseDate As String
    Public Genres As Generic.List(Of Genre)
    Public Directors As Generic.List(Of Contributer)
    Public Writers As Generic.List(Of Contributer)
    <XmlAttribute()> Public InformationUpdated As Date
    <XmlAttribute()> Public InformationUpdatedBy As String
    Public Cast As Generic.List(Of Contributer)
    Public Certifications As Generic.List(Of Certification)
    <XmlAttribute()> Public InformationSource As InformationSource = InformationSource.Automatically
End Class

''' <summary>
''' How was the feature information created
''' </summary>
''' <remarks></remarks>
Public Enum InformationSource
    ''' <summary>
    ''' All information was retrieved from external source
    ''' </summary>
    ''' <remarks></remarks>
    Automatically
    ''' <summary>
    ''' Information was originally automatically created but has had changes made by a user
    ''' </summary>
    ''' <remarks></remarks>
    AutoAndCustomized
    ''' <summary>
    ''' All information was entered manually
    ''' </summary>
    ''' <remarks></remarks>
    Manually
End Enum


Public Class Certification
    <XmlAttribute()> Public Country As String
    <XmlText()> Public Level As String
    <XmlAttribute()> Public Note As String
End Class

Public Class BinaryFile
    <XmlAttribute()> Public Type As String
    <XmlText()> Public Data() As Byte
End Class
Public Class Person
    <XmlAttribute()> Public Ids As New Generic.List(Of String)
    <XmlText()> Public Name As String
End Class
Public Class Contributer
    Inherits Person
    <XmlAttribute()> Public Part As String
End Class
Public Class Genre
    <XmlText()> Public Name As String
End Class
